Android 项目中 Java 动态代理混淆注意

============================
在 Android 项目中用到了 RxCache 库。这个库要求提供一个 CacheProviers 接口包含所有的使用缓存的方法。当然,这个接口没有加入到混淆文件中。打 release 包之后出现异常。经过排查,我发现 RxCache 用的是 Java 动态代理,在调用该接口的方法时,因为接口和接口中的方法没有加入到混淆文件中,导致方法名和接口名被混淆,动态代理时通过类名和方法名就无法调用到具体的方法了。

此时需要在混淆文件中加入如下语句即可:
-keep public class your.package.name.CacheProviders {*;}

============================
原创,转载请指明出处(http://blog.xinspace.xin)。